package com.zrrd.network.tcp.client;

import java.io.*;
import java.net.Socket;

/**
 * @author WanJl
 * @version 1.0
 * @title Client02
 * @description 客户端：先输出，再输入
 * @create 2023/10/22 15:26
 */
public class Client02 {
    public static void request(String host,int port,String content) throws IOException {
        //1、创建Socket对象
        Socket client = new Socket(host, port);
        //2、获取输出流
        OutputStream os = client.getOutputStream();
        os.write(content.getBytes());
        //暂时先不能关闭流，否则会导致socket无法使用
        //而是使用shutdownOutput()方法，暂时的关闭输出流，并且写一个结束标记，这样对socket没有影响
        client.shutdownOutput();

        //3、接收服务器反馈的信息，获取输入流
        InputStream is = client.getInputStream();

        //4、处理输入流
        //把字节输入流，转换成字符输入流
        InputStreamReader isr = new InputStreamReader(is);
        //再把字符输入流放到字符缓冲输入流中。
        BufferedReader br = new BufferedReader(isr);

        //5、使用while循环，不断的读取
        String line;
        while ((line=br.readLine())!=null){
            //操作接收到的数据
            System.out.println(line);
        }
        //6、释放资源
        br.close();
        isr.close();
        is.close();
        os.close();
        client.close();
    }

    public static void main(String[] args) throws IOException {
        request("127.0.0.1",10010,"我TM来了");
    }
}
